package com.ruoyi.system.mapper;

import java.util.List;
import java.util.Map;

import com.ruoyi.system.domain.CompanySupply;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * 公司-供货商绑定关系Mapper接口
 * 
 * @author ruoyi
 * @date 2025-08-01
 */
public interface CompanySupplyMapper 
{

    /**
     * 查询本供货商手机号是否存在，并且是否已经绑定公司
     */
    @Select("select \n" +
            "(select id from supplier s where s.phone = #{phone} )id,\n" +
            "(select supply_id from company_supply c left join supplier s on c.supply_id = s.id where c.company_id = #{companyId} and s.phone = #{phone} ) supply_id \n" +
            "from dual \n")
    public Map<String,Object> checkSupplyPhone(@Param("companyId") Long companyId, @Param("phone") String phone);


    /**
     * 查询公司-供货商绑定关系
     * 
     * @param id 公司-供货商绑定关系主键
     * @return 公司-供货商绑定关系
     */
    public CompanySupply selectCompanySupplyById(Long id);

    /**
     * 查询公司-供货商绑定关系列表
     * 
     * @param companySupply 公司-供货商绑定关系
     * @return 公司-供货商绑定关系集合
     */
    public List<CompanySupply> selectCompanySupplyList(CompanySupply companySupply);

    /**
     * 新增公司-供货商绑定关系
     * 
     * @param companySupply 公司-供货商绑定关系
     * @return 结果
     */
    public int insertCompanySupply(CompanySupply companySupply);

    /**
     * 修改公司-供货商绑定关系
     * 
     * @param companySupply 公司-供货商绑定关系
     * @return 结果
     */
    public int updateCompanySupply(CompanySupply companySupply);

    /**
     * 删除公司-供货商绑定关系
     * 
     * @param id 公司-供货商绑定关系主键
     * @return 结果
     */
    public int deleteCompanySupplyById(Long id);

    /**
     * 批量删除公司-供货商绑定关系
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCompanySupplyByIds(Long[] ids);
}
